package com.jrx.anytxn.transaction.service;

import com.jrx.anytxn.common.exception.TxnBizException;
import com.jrx.anytxn.customer.dto.customer.CustomerRes;
import com.jrx.anytxn.customer.entity.CmCustomerBankcardInfo;
import com.jrx.anytxn.param.entity.PrProductTable;
import com.jrx.anytxn.transaction.entity.TlPaymentLog;
import com.jrx.anytxn.transaction.entity.TlPaymentMapping;
import com.jrx.anytxn.transaction.entity.TlWaivePaymentLog;
import com.jrx.anytxn.transaction.entity.TlWaivePaymentMapping;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 还款流水service
 *
 * @author : zhenghaopu
 * 2019/10/21
 */
public interface IWaivePaymentLogService {

    /**
     * 构建还款流水
     *
     * @param paymentType 还款类型
     * @param customerRes 客户信息
     * @param debtAmount 还款额
     * @param businessDate 业务日期
     * @param product 产品
     * @return 还款流水
     */
    TlWaivePaymentLog buildTlWaivePaymentLog(String paymentType,
                                             CustomerRes customerRes, BigDecimal debtAmount, Date businessDate, PrProductTable product) throws TxnBizException;

    /**
     * 构建还款流水与订单映射信息
     *
     * @param customerId 客户id
     * @param paymentSeqNo 还款流水
     * @param loanId 订单id
     * @param tenantId 租户id
     * @return 还款流水与订单映射信息
     */
    TlWaivePaymentMapping biudTlWaivePaymentMapping(String customerId, String paymentSeqNo, String loanId, String tenantId) throws TxnBizException;


}
